<?php
require_once 'DAO/Banco.php';
require_once 'DAO/DaoEmpresa.php';
require_once 'DAO/DaoCategoriaEmpresa.php';
require_once 'Model/Categorias.php';
require_once 'Model/CategoriaEmpresa.php';
class DaoCategorias extends Banco{
    
    function getCategoriasDaEmpresa($codigoEmpresa){
        $categorias = array(); 
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT CAS_CODEMPRESA, CAS_CODCATEGORIA FROM TB_CATEGORIAS WHERE CAS_CODEMPRESA = ?")) {
            $sql->bind_param('i',$codigoEmpresa);
            $sql->execute();
            $sql->bind_result($emp, $cat);
            while ($sql->fetch()) {
                $categoria = new Categorias();
                $de = new DaoEmpresa();
                $dce = new DaoCategoriaEmpresa();
                $categoria->setEmpresa($de->getEmpresa($emp));
                $categoria->setCategoria($dce->getCategoria($cat));
                $categorias[] = (object)$categoria;
            }
        }
        return $categorias;
    }
    
    function getEmpresasByCategoria(CategoriaEmpresa $categoria){
        $codigoCategoria = $categoria->getCodigo();
        $categorias = array(); 
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT CAS_CODEMPRESA, CAS_CODCATEGORIA FROM TB_CATEGORIAS WHERE CAS_CODCATEGORIA = ?;")) {
            $sql->bind_param('i',$codigoCategoria);
            $sql->execute();
            $sql->bind_result($emp, $cat);
            while ($sql->fetch()) {
                $categoria = new Categorias();
                $de = new DaoEmpresa();
                $dce = new DaoCategoriaEmpresa();
                $categoria->setEmpresa($de->getEmpresa($emp));
                $categoria->setCategoria($dce->getCategoria($cat));
                $categorias[] = (object)$categoria;
            }
        }
        return $categorias;
    }
    function getEmpresasByCategoriaByCidade(CategoriaEmpresa $categoria, $cidade) {
        $codigoCategoria = $categoria->getCodigo();
        $categorias = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT CAS_CODEMPRESA, CAS_CODCATEGORIA FROM TB_CATEGORIAS WHERE CAS_CODCATEGORIA = ?;")) {
            $sql->bind_param('i', $codigoCategoria);
            $sql->execute();
            $sql->bind_result($emp, $cat);
            while ($sql->fetch()) {
                $categoria = new Categorias();
                $de = new DaoEmpresa();
                $dce = new DaoCategoriaEmpresa();
                $categoria->setEmpresa($de->getEmpresa($emp));
                $categoria->setCategoria($dce->getCategoria($cat));
                if ($categoria->getEmpresa()->getCidade()->getCodigo() == $cidade) {
                    $categorias[] = (object) $categoria;
                }
            }
        }
        return $categorias;
    }
    
    function addCategoriaDaEmpresa(Categorias $categoria) {
        Banco::conecta();
        $banco = Banco::getBanco();
        $cat=null;
        $emp=null;
        if(is_a($categoria->getCategoria(), 'CategoriaEmpresa')){
            $cat = $categoria->getCategoria()->getCodigo();
        }
        if(is_a($categoria->getEmpresa(), 'Empresa')){
            $emp = $categoria->getEmpresa()->getCodigo();
        }
        $lastid=-1;
        if ($sql = $banco->prepare("INSERT INTO TB_CATEGORIAS VALUES(?, ?);")) {
            $sql->bind_param('ii',$emp,$cat);
            $sql->execute();
            echo $sql->error;
            $sql->close();
        }
        echo $banco->error;

    }
}

?>
